//
//  MeetingManager.h
//  Rongcloud
//
//  Created by LiuLinhong on 2018/04/18.
//  Copyright © 2018年 Beijing Rongcloud Network Technology Co. , Ltd. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "MeetingVideoViewModel.h"

#define LarkMeetingManager ([MeetingManager sharedManager])


@interface MeetingManager : NSObject


+ (instancetype)sharedManager;




#pragma mark - isSwitchVideoView
- (BOOL)isSwitchVideoView;
- (void)setIsSwitchVideoView:(BOOL)is;

#pragma mark - isCloseCamera
- (BOOL)isCloseCamera;
- (void)setIsCloseCamera:(BOOL)is;

#pragma mark - is0RequestSpeak
- (BOOL)is0RequestSpeak;
- (void)setIs0RequestSpeak:(BOOL)is;

#pragma mark - is1Invite
- (BOOL)is1Invite;
- (void)setIs1Invite:(BOOL)is;

#pragma mark - is2ManageMeeting
- (BOOL)is2ManageMeeting;
- (void)setIs2ManageMeeting:(BOOL)is;

#pragma mark - is3UseWhiteBoard
- (BOOL)is3UseWhiteBoard;
- (void)setIs3UseWhiteBoard:(BOOL)is;

#pragma mark - is4ShareScreen
- (BOOL)is4ShareScreen;
- (void)setIs4ShareScreen:(BOOL)is;

#pragma mark - is5Speaker
- (BOOL)is5Speaker;
- (void)setIs5Speaker:(BOOL)is;

#pragma mark - is7Mute
- (BOOL)is7Mute;
- (void)setIs7Mute:(BOOL)is;

#pragma mark - isCallingBreath
- (BOOL)isCallingBreath;
- (void)setIsCallingBreath:(BOOL)is;

#pragma mark - isWhiteBoardExist
- (BOOL)isWhiteBoardExist;
- (void)setIsWhiteBoardExist:(BOOL)is;

#pragma mark - isHideControlView
- (BOOL)isHideControlView;
- (void)setIsHideControlView:(BOOL)is;

#pragma mark - isFullScreen
- (BOOL)isFullScreen;
- (void)setIsFullScreen:(BOOL)is;

#pragma mark - isDataInfoOpen
- (BOOL)isDataInfoOpen;
- (void)setIsDataInfoOpen:(BOOL)is;

#pragma mark - observerIndex
- (NSInteger)observerIndex;
- (void)setObserverIndex:(NSInteger)index;

#pragma mark - closeCameraIndex
- (NSInteger)closeCameraIndex;
- (void)setCloseCameraIndex:(NSInteger)index;

#pragma mark - selectedSwitchCellIndex
- (NSInteger)selectedSwitchCellIndex;
- (void)setSelectedSwitchCellIndex:(NSInteger)index;

#pragma mark - selectedSwitchPageIndex
- (NSInteger)selectedSwitchPageIndex;
- (void)setSelectedSwitchPageIndex:(NSInteger)index;

#pragma mark - handupRequestArray
- (NSMutableArray *)handupRequestArray;
- (void)addHandupRequestArrayObject:(id)object;
- (void)removeHandupRequestArrayObject:(id)object;
- (BOOL)isHandupRequestArrayContainObject:(id)object;

#pragma mark - promoteCapacityArray
- (NSMutableArray *)promoteCapacityArray;
- (void)addPromoteCapacityArrayObject:(id)object;
- (void)removePromoteCapacityArrayObject:(id)object;
- (BOOL)isPromoteCapacityArrayContainObject:(id)object;

#pragma mark - localDataInfoArray
- (NSMutableArray *)localDataInfoArray;
- (void)addLocalDataInfoArrayObject:(id)object;
- (void)removeLocalDataInfoArrayAllObject;

#pragma mark - memberDataInfoArray
- (NSMutableArray *)memberDataInfoArray;
- (void)addMemberDataInfoArrayObject:(id)object;
- (void)removeMemberDataInfoArrayAllObject;

#pragma mark - upgradeUserIDArray
- (NSMutableArray *)upgradeUserIDArray;
- (void)addUpgradeUserIDArrayObject:(id)object;
- (void)removeUpgradeUserIDArrayObject:(id)object;
- (void)removeUpgradeUserIDArrayAllObject;
- (BOOL)isUpgradeUserIDArrayContainObject:(id)object;

#pragma mark - userIDArray
- (NSMutableArray *)userIDArray;
- (void)addUserIDArrayObject:(id)object;
- (void)removeUserIDArrayObject:(id)object;
- (void)removeObjectFromUserIDArrayAtIndex:(NSUInteger)index;
- (void)removeUserIDArrayAllObject;
- (BOOL)isUserIDArrayContainObject:(id)object;

#pragma mark - remoteAllMemberArray
- (NSMutableArray *)remoteAllMemberArray;
- (void)addRemoteAllMemberArrayObject:(id)object;
- (void)removeRemoteAllMemberArrayObject:(id)object;
- (void)removeObjectFromRemoteAllMemberArrayAtIndex:(NSUInteger)index;
- (void)removeRemoteAllMemberArrayAllObject;
- (BOOL)isRemoteAllMemberArrayContainObject:(id)object;
- (MeetingVideoViewModel *)getRemoteAllMemberArrayObject:(NSString *)userID;
- (NSString *)getUserNameFromRemoteAllMemberArray:(NSString *)userID;
- (NSInteger)indexOfRemoteAllMemberArrayObject:(id)object;
- (void)replaceObjectInRemoteAllMemberArrayAtIndex:(NSUInteger)index withObject:(id)object;

#pragma mark - remoteVideoViewArray
- (NSMutableArray *)remoteVideoViewArray;
- (void)addRemoteVideoViewArrayObject:(id)object;
- (void)removeRemoteVideoViewArrayObject:(id)object;
- (void)removeObjectFromRemoteVideoViewArrayAtIndex:(NSUInteger)index;
- (void)removeObjectFromRemoteVideoViewArrayWithUserID:(NSString *)userID;
- (void)removeRemoteVideoViewArrayAllObject;
- (BOOL)isRemoteVideoViewArrayContainObject:(id)object;
- (MeetingVideoViewModel *)getRemoteVideoViewArrayObject:(NSString *)userID;
- (NSInteger)indexOfRemoteVideoViewArrayObject:(id)object;
- (NSInteger)indexOfRemoteVideoViewArrayUser:(id)userId;
- (void)replaceObjectInRemoteVideoViewArrayAtIndex:(NSUInteger)index withObject:(id)object;


@end
